/**
 */
package kevin.study.zephyr.domain.model;

import kevin.study.zephyr.domain.model.base.Base;

/**
 * 具体实例的接口
 *
 * @author Kevin.Huang
 * @createtime 2007-12-12
 * @param <T>
 */
public abstract class Entity< T > extends Base implements Comparable< Entity< T > > {

	/**
	 *
	 */
	private static final long serialVersionUID = -7727793603018374461L;

	/**
	 * value对应的字段名
	 */
	public static final String FILTER_VALUE = "value";

	/**
	 * 存放实际的值
	 */
	protected T value;

	/**
	 * 取出值
	 *
	 * @return 值
	 */
	public T getValue() {
		return this.value;
	}

	/**
	 * 取出值
	 *
	 * @param value 值
	 */
	public void setValue(T value) {
		this.value = value;
	}

	/**
	 * 将字符串值传入实例,并进行转换
	 *
	 * @param value 值
	 */
	public abstract void setStringValue(String value);

	/**
	 * 直接将对象传入
	 *
	 * @param obj Object
	 */
	public abstract void setObject(Object obj);

	/**
	 * 输出字符串
	 *
	 * @return  String
	 */
	@Override
	public abstract String toString();

    /**
     * 获取Entity的名字
      * @return 获取Entity的名字
     */
    public abstract String getTypeName();

}
